package br.com.datatraffic.fiscal.entidades;

// Generated 10/07/2009 10:49:54 by Hibernate Tools 3.2.0.b9

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Trafego generated by hbm2java
 */
@Entity
@Table(name = "TBTRAFEGO")
public class Trafego implements java.io.Serializable {

	private Long id;
	private Ticket5 ticket;
	private Veiculo5 veiculo;
	private Imagem5 imagem;
	private EquipamentoFaixa5 equipamentoFaixa;
	private Classificacao5 classificacao;
	private Double pbtPesagemMovimento;
	private Double pesoAbsolutoSiwim;
	private Double velocidade;
	private Double temperatura;
	private Date data;
	private List<Eixo> eixos = new ArrayList<Eixo>(0);
	private Boolean orfao;
	private List<ImagemTrafego> imagensTrafego = new ArrayList<ImagemTrafego>(0);
	private List<FlagPesagemTrafego> flagsPesagemTrafego = new ArrayList<FlagPesagemTrafego>(0);

	public Trafego() {
	}

	public Trafego(Long id, EquipamentoFaixa5 equipamentoFaixa) {
		this.id = id;
		this.equipamentoFaixa = equipamentoFaixa;
	}

	public Trafego(Long id, Ticket5 ticket, Veiculo5 veiculo, Imagem5 imagem, EquipamentoFaixa5 equipamentoFaixa,
			Classificacao5 classificacao, Double pbtPesagemMovimento, Double velocidade, Double temperatura, Date data,
			List<Eixo> eixos, List<ImagemTrafego> imagensTrafego) {
		this.id = id;
		this.ticket = ticket;
		this.veiculo = veiculo;
		this.imagem = imagem;
		this.equipamentoFaixa = equipamentoFaixa;
		this.classificacao = classificacao;
		this.pbtPesagemMovimento = pbtPesagemMovimento;
		this.velocidade = velocidade;
		this.temperatura = temperatura;
		this.data = data;
		this.eixos = eixos;
		this.imagensTrafego = imagensTrafego;
	}

	@Id
	@GeneratedValue
	@Column(name = "TRAFEGO_ID", unique = true, nullable = false, precision = 38, scale = 0)
	public Long getId() {
		return this.id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "TICKET_ID")
	public Ticket5 getTicket() {
		return this.ticket;
	}

	public void setTicket(Ticket5 ticket) {
		this.ticket = ticket;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "VEICULO_ID")
	public Veiculo5 getVeiculo() {
		return this.veiculo;
	}

	public void setVeiculo(Veiculo5 veiculo) {
		this.veiculo = veiculo;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "IMAGEM_ID")
	public Imagem5 getImagem() {
		return this.imagem;
	}

	public void setImagem(Imagem5 imagem) {
		this.imagem = imagem;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "EQUIPAMENTO_FAIXA_ID", nullable = false)
	public EquipamentoFaixa5 getEquipamentoFaixa() {
		return this.equipamentoFaixa;
	}

	public void setEquipamentoFaixa(EquipamentoFaixa5 equipamentoFaixa) {
		this.equipamentoFaixa = equipamentoFaixa;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "CLASSIFICACAO_ID")
	public Classificacao5 getClassificacao() {
		return this.classificacao;
	}

	public void setClassificacao(Classificacao5 classificacao) {
		this.classificacao = classificacao;
	}

	@Column(name = "PBT_PESAGEM_MOVIMENTO", precision = 50, scale = 0)
	public Double getPbtPesagemMovimento() {
		return this.pbtPesagemMovimento;
	}

	public void setPbtPesagemMovimento(Double pbtPesagemMovimento) {
		this.pbtPesagemMovimento = pbtPesagemMovimento;
	}

	@Column(name = "PESO_ABSOLUTO_SIWIM", precision = 50, scale = 0)
	public Double getPesoAbsolutoSiwim() {
		return pesoAbsolutoSiwim;
	}

	public void setPesoAbsolutoSiwim(Double pesoAbsolutoSiwim) {
		this.pesoAbsolutoSiwim = pesoAbsolutoSiwim;
	}

	@Column(name = "VELOCIDADE", precision = 50, scale = 0)
	public Double getVelocidade() {
		return this.velocidade;
	}

	public void setVelocidade(Double velocidade) {
		this.velocidade = velocidade;
	}

	@Column(name = "TEMPERATURA", precision = 50, scale = 0)
	public Double getTemperatura() {
		return this.temperatura;
	}

	public void setTemperatura(Double temperatura) {
		this.temperatura = temperatura;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "DATA")
	public Date getData() {
		return this.data;
	}

	public void setData(Date data) {
		this.data = data;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "trafego")
	public List<Eixo> getEixos() {
		return this.eixos;
	}

	public void setEixos(List<Eixo> eixos) {
		this.eixos = eixos;
	}

	@Column(name = "ORFAO", precision = 1, scale = 0)
	public Boolean getOrfao() {
		return orfao;
	}

	public void setOrfao(Boolean orfao) {
		this.orfao = orfao;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "trafego")
	public List<ImagemTrafego> getImagensTrafego() {
		return imagensTrafego;
	}

	public void setImagensTrafego(List<ImagemTrafego> imagensTrafego) {
		this.imagensTrafego = imagensTrafego;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "trafego")
	public List<FlagPesagemTrafego> getFlagsPesagemTrafego() {
		return flagsPesagemTrafego;
	}

	public void setFlagsPesagemTrafego(List<FlagPesagemTrafego> flagsPesagemTrafego) {
		this.flagsPesagemTrafego = flagsPesagemTrafego;
	}

	// The following is extra code specified in the hbm.xml files
	private static final long serialVersionUID = 1L;
	// end of extra code specified in the hbm.xml files

}